/**
 * Copyright (C) 2015-2021 Jtl3d Corporation All rights reserved.
 * <p>
 * 使本项目源码前请仔细阅读以下协议内容，如果你同意以下协议才能使用本项目所有的功能,
 * 否则如果你违反了以下协议，有可能陷入法律纠纷和赔偿，作者保留追究法律责任的权利。
 * <p>
 * 1) 本代码为商业源代码，只允许已授权内部人员查看使用
 * 2) 任何人员无权将代码泄露或者授权给其他未被授权人员使用
 * 3) 任何修改请保留原始作者信息，不得擅自删除及修改
 * <p>
 * 请保留以上版权信息，否则作者将保留追究法律责任。
 */

package com.example.bootvars;

import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.mail.MailProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;

/**
 * @author pxh
 * @version 1.0.0
 * @description MailPropertiesPrintingCommandLineRunner
 * @date 2021/10/1
 */
@Component
@ConditionalOnProperty(prefix = "spring.mail", name = "host")
public class MailPropertiesPrintingCommandLineRunner implements CommandLineRunner {

    private final ApplicationContext applicationContext;

    public MailPropertiesPrintingCommandLineRunner(ApplicationContext applicationContext) {
        this.applicationContext = applicationContext;
    }

    @Override
    public void run(String... args) throws Exception {

        MailProperties mailProperties = applicationContext.getBean(MailProperties.class);

        System.out.println("SpringBoot's MailProperties:");
        System.out.println("---------------------------------------------------------------------------------------------");

        mailProperties.getProperties().entrySet()
                .forEach(System.out::println);

        System.out.println("---------------------------------------------------------------------------------------------");

    }

}
